#coding:utf-8
'''
Created on 2017年12月20日

@author: hj-pc
'''
#解析配置文件
from com.utls.pro_env import PROJECT_CONF_DIR
from xml.etree.ElementTree import ElementTree
from com.utls.HiveUtil import HiveUtil
import sys
def resolve_conf(type,dt):
    
    #获得配置文件名
    confFile = PROJECT_CONF_DIR + "HiveJob.xml"
    
    #解析配置文件
    xmlTree = ElementTree.parse(confFile)
    
    #Job元素
    jobs = xmlTree.findall('.//Job')
    
    #用来保存hql
    hqls = []
    
    #遍历Job的子元素，获得所需参数
    for job in jobs:
        
        #如果Job的type是需要执行的type
        if job.attrib["type"] == type:
            
            for hql in job.getchildren():
                #获得hql标签的值 去掉两头空字符
                hql = hql.text.strip()
                
                #检查hql的有效性，无效则跑出异常
                if len(hql) == 0 or hql == "" or hql == " " or hql == None:
                    raise Exception('参数有误,终止运行')
                else:
                    #将时间信息转换
                    hql = hql.replace("\$dt",dt)
                    
                    hqls.append(hql)
    return hqls

#Python模块的入口:main 函数
if __name__ == '_main_':
    #调度模块将昨天的时间传入
    #解析配置文件，获得sqoop命令集合
    hqls = resolve_conf(sys.argv[0],sys.argv[1])
    
    print(hqls)
    #迭代集合，执行命令
    for hql  in hqls:
        
        
        #执行导入过程
        HiveUtil.execute_shell(hql)
